9 research outputs found

    Testing and debugging functional reactive programming

    Get PDF
    Many types of interactive applications, including video games, raise particular challenges when it comes to testing and debugging. Reasons include de-facto lack of reproducibility and difficulties of automatically generating suitable test data. This paper demonstrates that certain variants of Functional Reactive Programming (FRP) implemented in pure functional languages can mitigate such difficulties by offering referential transparency at the level of whole programs. This opens up for a multi-pronged approach for assisting with testing and debugging that works across platforms, including assertions based on temporal logic, recording and replaying of runs (also from deployed code), and automated random testing using QuickCheck. The approach has been validated on real, non-trivial games implemented in the FRP system Yampa through a tool providing a convenient Graphical User Interface that allows the execution of the code under scrutiny to be controlled, moving along the execution time line, and pin-pointing of violations of assertions on PCs as well as mobile platforms

    Bridging the GUI gap with reactive values and relations

    Get PDF
    There are at present two ways to write GUIs for functional code. One is to use standard GUI toolkits, with all the benefits they bring in terms of feature completeness, choice of platform, conformance to platform-specific look-and-feel, long-term viability, etc. However, such GUI APIs mandate an imperative programming style for the GUI and related parts of the application. Alternatively, we can use a functional GUI toolkit. The GUI can then be written in a functional style, but at the cost of foregoing many advantages of standard toolkits that often will be of critical importance. This paper introduces a light-weight framework structured around the notions of reactive values and reactive relations . It allows standard toolkits to be used from functional code written in a functional style. We thus bridge the gap between the two worlds, bringing the advantages of both to the developer. Our framework is available on Hackage and has been been validated through the development of non-trivial applications in a commercial context, and with different standard GUI toolkits

    A glimpse of antimicrobial resistance gene diversity in kefir and yoghurt

    Get PDF
    Abstract Antimicrobial resistance (AMR) is a global threat gaining more and more practical significance every year. The main determinants of AMR are the antimicrobial resistance genes (ARGs). Since bacteria can share genetic components via horizontal gene transfer, even non-pathogenic bacteria may provide ARG to any pathogens which they become physically close to (e.g. in the human gut). In addition, fermented food naturally contains bacteria in high amounts. In this study, we examined the diversity of ARG content in various kefir and yoghurt samples (products, grains, bacterial strains) using a unified metagenomic approach. We found numerous ARGs of commonly used fermenting bacteria. Even with the strictest filter restrictions, we identified ARGs undermining the efficacy of aminocoumarins, aminoglycosides, carbapenems, cephalosporins, cephamycins, diaminopyrimidines, elfamycins, fluoroquinolones, fosfomycins, glycylcyclines, lincosamides, macrolides, monobactams, nitrofurans, nitroimidazoles, penams, penems, peptides, phenicols, rifamycins, tetracyclines and triclosan. In the case of gene lmrD, we detected genetic environment providing mobility of this ARG. Our findings support the theory that during the fermentation process, the ARG content of foods聽can grow due to bacterial multiplication. The results presented suggest that the starting culture strains of fermented foods should be monitored and selected in order to decrease the intake of ARGs via foods
    corecore